macro 'import raw image [I]';
var
w,h:   integer;
begin
w:= GetNumber('width: ',1350);
h:= GetNumber('height: ',1000);
SetImport('Custom');
SetCustom(w,h,0);
Import('image');
end;


macro '(-' begin end;


macro 'import polfig           [0]';
begin
SetImport('Custom');
SetCustom(36,36,0);
Import('polfig');
end;


MACRO 'remove center         [M]';
   BEGIN
            PutPixel(17,17,0);
            PutPixel(17,18,0);
            PutPixel(18,17,0);
            PutPixel(18,18,0);
   END;


MACRO 'smooth pole figure  [K]';
   BEGIN
            ReduceNoise;
   END;


macro '(-' begin end;


MACRO 'make CIP pole figure - incr                [C]';
VAR
    mmax,polemax,factor,incr,magfac : REAL;
   level,i,newpolesize,newoval,temp:integer;
   ringfig,polefig,mm,ax:integer;
  delta,steps,StepSize,NextStep:real;
  wtitle:string;
   BEGIN
  wtitle:=WindowTitle;
   magfac := GetNumber('Magnification', 5.0);
   mmax := GetNumber('Measured maximum', 2.5);
   polemax := GetNumber('Maximum of polefigure', 8.0);
   incr := GetNumber('Increments of polefigure', 1.0);
   factor:= mmax/polemax;
   newpolesize:=36.*magfac + 4.00;
   newoval:=newpolesize-2;

MakeOvalRoi(0,0,36,36);
Copy;
SetNewSize(38,38);
MakeNewWindow('Pole ring');
ringfig:=PidNumber;
  Paste;
  DoCopy;
            PutPixel(22,37,GetPixel(15,1));
            PutPixel(21,37,GetPixel(16,1));
            PutPixel(20,37,GetPixel(17,1));
            PutPixel(19,37,GetPixel(18,1));
            PutPixel(18,37,GetPixel(19,1));
            PutPixel(17,37,GetPixel(20,1));
            PutPixel(16,37,GetPixel(21,1));
            PutPixel(15,37,GetPixel(22,1));
PutPixel(15,0,GetPixel(22,36));
PutPixel(16,0,GetPixel(21,36));
PutPixel(17,0,GetPixel(20,36));
PutPixel(18,0,GetPixel(19,36));
PutPixel(19,0,GetPixel(18,36));
PutPixel(20,0,GetPixel(17,36));
PutPixel(21,0,GetPixel(16,36));
PutPixel(22,0,GetPixel(15,36));
            PutPixel(25,36,GetPixel(12,2));
            PutPixel(24,36,GetPixel(13,2));
            PutPixel(23,36,GetPixel(14,2));
            PutPixel(14,36,GetPixel(23,2));
            PutPixel(13,36,GetPixel(24,2));
            PutPixel(12,36,GetPixel(25,2));
            PutPixel(25,1,GetPixel(12,35));
            PutPixel(24,1,GetPixel(13,35));
            PutPixel(23,1,GetPixel(14,35));
            PutPixel(14,1,GetPixel(23,35));
            PutPixel(13,1,GetPixel(24,35));
            PutPixel(12,1,GetPixel(25,35));
PutPixel(37,22,GetPixel(1,15));
PutPixel(37,21,GetPixel(1,16));
PutPixel(37,20,GetPixel(1,17));
PutPixel(37,19,GetPixel(1,18));
PutPixel(37,18,GetPixel(1,19));
PutPixel(37,17,GetPixel(1,20));
PutPixel(37,16,GetPixel(1,21));
PutPixel(37,15,GetPixel(1,22));
            PutPixel(0,22,GetPixel(36,15));
            PutPixel(0,21,GetPixel(36,16));
            PutPixel(0,20,GetPixel(36,17));
            PutPixel(0,19,GetPixel(36,18));
            PutPixel(0,18,GetPixel(36,19));
            PutPixel(0,17,GetPixel(36,20));
            PutPixel(0,16,GetPixel(36,21));
            PutPixel(0,15,GetPixel(36,22));
PutPixel(36,25,GetPixel(2,12));
PutPixel(36,24,GetPixel(2,13));
PutPixel(36,23,GetPixel(2,14));
PutPixel(36,14,GetPixel(2,23));
PutPixel(36,13,GetPixel(2,24));
PutPixel(36,12,GetPixel(2,25));
PutPixel(1,25,GetPixel(35,12));
PutPixel(1,24,GetPixel(35,13));
PutPixel(1,23,GetPixel(35,14));
PutPixel(1,14,GetPixel(35,23));
PutPixel(1,13,GetPixel(35,24));
PutPixel(1,12,GetPixel(35,25));
            PutPixel(28,35,GetPixel(10,3));
            PutPixel(27,35,GetPixel(11,3));
            PutPixel(26,35,GetPixel(12,3));
            PutPixel(11,35,GetPixel(25,3));
            PutPixel(10,35,GetPixel(26,3));
            PutPixel(9,35,GetPixel(27,3));

            PutPixel(28,2,GetPixel(10,34));
            PutPixel(27,2,GetPixel(11,34));
            PutPixel(26,2,GetPixel(12,34));
            PutPixel(11,2,GetPixel(25,34));
            PutPixel(10,2,GetPixel(26,34));
            PutPixel(9,2,GetPixel(27,34));
PutPixel(35,28,GetPixel(3,10));
PutPixel(35,27,GetPixel(3,11));
PutPixel(35,26,GetPixel(3,12));
PutPixel(35,11,GetPixel(3,25));
PutPixel(35,10,GetPixel(3,26));
PutPixel(35,9,GetPixel(3,27));

PutPixel(2,28,GetPixel(34,10));
PutPixel(2,27,GetPixel(34,11));
PutPixel(2,26,GetPixel(34,12));
PutPixel(2,11,GetPixel(34,25));
PutPixel(2,10,GetPixel(34,26));
PutPixel(2,9,GetPixel(34,27));

            PutPixel(34,30,GetPixel(4,8));
            PutPixel(34,29,GetPixel(4,9));
            PutPixel(34,28,GetPixel(4,10));
            PutPixel(34,9,GetPixel(4,27));
            PutPixel(34,8,GetPixel(4,28));
            PutPixel(34,7,GetPixel(4,29));

            PutPixel(3,30,GetPixel(33,8));
            PutPixel(3,29,GetPixel(33,9));
            PutPixel(3,28,GetPixel(33,10));
            PutPixel(3,9,GetPixel(33,27));
            PutPixel(3,8,GetPixel(33,28));
            PutPixel(3,7,GetPixel(33,29));

PutPixel(30,34,GetPixel(8,4));
PutPixel(29,34,GetPixel(9,4));
PutPixel(28,34,GetPixel(10,4));
PutPixel(9,34,GetPixel(27,4));
PutPixel(8,34,GetPixel(28,4));
PutPixel(7,34,GetPixel(29,4));

PutPixel(30,3,GetPixel(8,33));
PutPixel(29,3,GetPixel(9,33));
PutPixel(28,3,GetPixel(10,33));
PutPixel(9,3,GetPixel(27,33));
PutPixel(8,3,GetPixel(28,33));
PutPixel(7,3,GetPixel(29,33));

            PutPixel(31,33,GetPixel(7,5));
            PutPixel(30,33,GetPixel(8,5));
            PutPixel(7,33,GetPixel(29,5));
            PutPixel(6,33,GetPixel(30,5));
            PutPixel(31,4,GetPixel(7,32));
            PutPixel(30,4,GetPixel(8,32));
            PutPixel(7,4,GetPixel(29,32));
            PutPixel(6,4,GetPixel(30,32));

            PutPixel(32,32,GetPixel(6,6));
            PutPixel(31,32,GetPixel(7,6));
            PutPixel(5,32,GetPixel(30,6));
            PutPixel(6,32,GetPixel(31,6));
            PutPixel(32,5,GetPixel(6,31));
            PutPixel(31,5,GetPixel(7,31));
            PutPixel(5,5,GetPixel(30,31));
            PutPixel(6,5,GetPixel(31,31));

            PutPixel(33,31,GetPixel(5,7));
            PutPixel(32,31,GetPixel(6,7));
            PutPixel(5,31,GetPixel(31,7));
            PutPixel(4,31,GetPixel(32,7));
            PutPixel(33,6,GetPixel(5,30));
            PutPixel(32,6,GetPixel(6,30));
            PutPixel(5,6,GetPixel(31,30));
            PutPixel(4,6,GetPixel(32,30));

            PutPixel(33,30,GetPixel(5,8));
            PutPixel(4,30,GetPixel(32,8));
            PutPixel(33,7,GetPixel(5,29));
            PutPixel(4,7,GetPixel(32,29));

SetNewSize(newpolesize,newpolesize);
SetScaling('New window');
SetScaling('bilinear');
ScaleAndRotate(magfac,magfac,0.);
SelectAll;
MultiplyByConstant(factor);
 MakeOvalRoi(1,1,newoval,newoval);
  Copy;
  SelectAll;
  Clear;
  SetForegroundColor(255);
  Fill;
  Paste;
  DoCopy;
  steps:=polemax/incr;
  StepSize:=256/steps;
  delta:=256/(steps-1);
  NextStep:=trunc(StepSize);
  level:=255;
  for i:=0 to 255 do begin
    if i>=NextStep then begin
      NextStep:=trunc(NextStep+StepSize);
      level:=level-delta;
      UpdateLUT;
    end;
    if level<0 then level:=0;
    RedLUT[i]:=level;
    GreenLUT[i]:=level;
    BlueLUT[i]:=level;
  end;
SetPicName('Pole figure');
polefig:=PidNumber;
SelectAll;
FlipVertical;
SelectPic(ringfig);
Dispose;
SelectPic(polefig);
KillRoi;
mm:=trunc(mmax);
ax:=10*(mmax-mm);
SaveAs(wtitle,'_',mm:2,'.',ax:1,'_of_',polemax:2)
END;



MACRO 'make 180*180 CIP pole figure - incr [G]';
VAR
    mmax,polemax,factor,incr,magfac,mag3 : REAL;
   level,i,newpolesize,newoval,newsize1,newsize2,temp:integer;
   ringfig,fig1,fig2,polefig,mm,ax:integer;
  delta,steps,StepSize,NextStep:real;
  wtitle:string;
   BEGIN
  wtitle:=WindowTitle;
   magfac := 5.0;
   mag3:=1.71;
   mmax := GetNumber('Measured maximum', 2.5);
   polemax := GetNumber('Maximum of polefigure', 8.0);
   incr := GetNumber('Increments of polefigure', 1.0);
   factor:= mmax/polemax;
   newpolesize:=36.*magfac + 4.00;
   newsize1:=62;
			newsize2:=106;
   newoval:=newpolesize-2;

MakeOvalRoi(0,0,36,36);
Copy;
SetNewSize(38,38);
MakeNewWindow('Pole ring');
ringfig:=PidNumber;
  Paste;
  DoCopy;
            PutPixel(22,37,GetPixel(15,1));
            PutPixel(21,37,GetPixel(16,1));
            PutPixel(20,37,GetPixel(17,1));
            PutPixel(19,37,GetPixel(18,1));
            PutPixel(18,37,GetPixel(19,1));
            PutPixel(17,37,GetPixel(20,1));
            PutPixel(16,37,GetPixel(21,1));
            PutPixel(15,37,GetPixel(22,1));
PutPixel(15,0,GetPixel(22,36));
PutPixel(16,0,GetPixel(21,36));
PutPixel(17,0,GetPixel(20,36));
PutPixel(18,0,GetPixel(19,36));
PutPixel(19,0,GetPixel(18,36));
PutPixel(20,0,GetPixel(17,36));
PutPixel(21,0,GetPixel(16,36));
PutPixel(22,0,GetPixel(15,36));
            PutPixel(25,36,GetPixel(12,2));
            PutPixel(24,36,GetPixel(13,2));
            PutPixel(23,36,GetPixel(14,2));
            PutPixel(14,36,GetPixel(23,2));
            PutPixel(13,36,GetPixel(24,2));
            PutPixel(12,36,GetPixel(25,2));
            PutPixel(25,1,GetPixel(12,35));
            PutPixel(24,1,GetPixel(13,35));
            PutPixel(23,1,GetPixel(14,35));
            PutPixel(14,1,GetPixel(23,35));
            PutPixel(13,1,GetPixel(24,35));
            PutPixel(12,1,GetPixel(25,35));
PutPixel(37,22,GetPixel(1,15));
PutPixel(37,21,GetPixel(1,16));
PutPixel(37,20,GetPixel(1,17));
PutPixel(37,19,GetPixel(1,18));
PutPixel(37,18,GetPixel(1,19));
PutPixel(37,17,GetPixel(1,20));
PutPixel(37,16,GetPixel(1,21));
PutPixel(37,15,GetPixel(1,22));
            PutPixel(0,22,GetPixel(36,15));
            PutPixel(0,21,GetPixel(36,16));
            PutPixel(0,20,GetPixel(36,17));
            PutPixel(0,19,GetPixel(36,18));
            PutPixel(0,18,GetPixel(36,19));
            PutPixel(0,17,GetPixel(36,20));
            PutPixel(0,16,GetPixel(36,21));
            PutPixel(0,15,GetPixel(36,22));
PutPixel(36,25,GetPixel(2,12));
PutPixel(36,24,GetPixel(2,13));
PutPixel(36,23,GetPixel(2,14));
PutPixel(36,14,GetPixel(2,23));
PutPixel(36,13,GetPixel(2,24));
PutPixel(36,12,GetPixel(2,25));
PutPixel(1,25,GetPixel(35,12));
PutPixel(1,24,GetPixel(35,13));
PutPixel(1,23,GetPixel(35,14));
PutPixel(1,14,GetPixel(35,23));
PutPixel(1,13,GetPixel(35,24));
PutPixel(1,12,GetPixel(35,25));
            PutPixel(28,35,GetPixel(10,3));
            PutPixel(27,35,GetPixel(11,3));
            PutPixel(26,35,GetPixel(12,3));
            PutPixel(11,35,GetPixel(25,3));
            PutPixel(10,35,GetPixel(26,3));
            PutPixel(9,35,GetPixel(27,3));

            PutPixel(28,2,GetPixel(10,34));
            PutPixel(27,2,GetPixel(11,34));
            PutPixel(26,2,GetPixel(12,34));
            PutPixel(11,2,GetPixel(25,34));
            PutPixel(10,2,GetPixel(26,34));
            PutPixel(9,2,GetPixel(27,34));
PutPixel(35,28,GetPixel(3,10));
PutPixel(35,27,GetPixel(3,11));
PutPixel(35,26,GetPixel(3,12));
PutPixel(35,11,GetPixel(3,25));
PutPixel(35,10,GetPixel(3,26));
PutPixel(35,9,GetPixel(3,27));

PutPixel(2,28,GetPixel(34,10));
PutPixel(2,27,GetPixel(34,11));
PutPixel(2,26,GetPixel(34,12));
PutPixel(2,11,GetPixel(34,25));
PutPixel(2,10,GetPixel(34,26));
PutPixel(2,9,GetPixel(34,27));

            PutPixel(34,30,GetPixel(4,8));
            PutPixel(34,29,GetPixel(4,9));
            PutPixel(34,28,GetPixel(4,10));
            PutPixel(34,9,GetPixel(4,27));
            PutPixel(34,8,GetPixel(4,28));
            PutPixel(34,7,GetPixel(4,29));

            PutPixel(3,30,GetPixel(33,8));
            PutPixel(3,29,GetPixel(33,9));
            PutPixel(3,28,GetPixel(33,10));
            PutPixel(3,9,GetPixel(33,27));
            PutPixel(3,8,GetPixel(33,28));
            PutPixel(3,7,GetPixel(33,29));

PutPixel(30,34,GetPixel(8,4));
PutPixel(29,34,GetPixel(9,4));
PutPixel(28,34,GetPixel(10,4));
PutPixel(9,34,GetPixel(27,4));
PutPixel(8,34,GetPixel(28,4));
PutPixel(7,34,GetPixel(29,4));

PutPixel(30,3,GetPixel(8,33));
PutPixel(29,3,GetPixel(9,33));
PutPixel(28,3,GetPixel(10,33));
PutPixel(9,3,GetPixel(27,33));
PutPixel(8,3,GetPixel(28,33));
PutPixel(7,3,GetPixel(29,33));

            PutPixel(31,33,GetPixel(7,5));
            PutPixel(30,33,GetPixel(8,5));
            PutPixel(7,33,GetPixel(29,5));
            PutPixel(6,33,GetPixel(30,5));
            PutPixel(31,4,GetPixel(7,32));
            PutPixel(30,4,GetPixel(8,32));
            PutPixel(7,4,GetPixel(29,32));
            PutPixel(6,4,GetPixel(30,32));

            PutPixel(32,32,GetPixel(6,6));
            PutPixel(31,32,GetPixel(7,6));
            PutPixel(5,32,GetPixel(30,6));
            PutPixel(6,32,GetPixel(31,6));
            PutPixel(32,5,GetPixel(6,31));
            PutPixel(31,5,GetPixel(7,31));
            PutPixel(5,5,GetPixel(30,31));
            PutPixel(6,5,GetPixel(31,31));

            PutPixel(33,31,GetPixel(5,7));
            PutPixel(32,31,GetPixel(6,7));
            PutPixel(5,31,GetPixel(31,7));
            PutPixel(4,31,GetPixel(32,7));
            PutPixel(33,6,GetPixel(5,30));
            PutPixel(32,6,GetPixel(6,30));
            PutPixel(5,6,GetPixel(31,30));
            PutPixel(4,6,GetPixel(32,30));

            PutPixel(33,30,GetPixel(5,8));
            PutPixel(4,30,GetPixel(32,8));
            PutPixel(33,7,GetPixel(5,29));
            PutPixel(4,7,GetPixel(32,29));

SetScaling('New window');
SetScaling('bilinear');
ScaleAndRotate(mag3,mag3,0.);
fig1:=PidNumber;

SetScaling('New window');
SetScaling('bilinear');
ScaleAndRotate(mag3,mag3,0.);
fig2:=PidNumber;

SetScaling('New window');
SetScaling('bilinear');
ScaleAndRotate(mag3,mag3,0.);
SelectAll;
MultiplyByConstant(factor);

 MakeOvalRoi(1,1,newoval,newoval);
  Copy;
  SelectAll;
  Clear;
  SetForegroundColor(255);
  Fill;
  Paste;
  DoCopy;
  steps:=polemax/incr;
  StepSize:=256/steps;
  delta:=256/(steps-1);
  NextStep:=trunc(StepSize);
  level:=255;
  for i:=0 to 255 do begin
    if i>=NextStep then begin
      NextStep:=trunc(NextStep+StepSize);
      level:=level-delta;
      UpdateLUT;
    end;
    if level<0 then level:=0;
    RedLUT[i]:=level;
    GreenLUT[i]:=level;
    BlueLUT[i]:=level;
  end;
SetPicName('Pole figure');
polefig:=PidNumber;
SelectAll;
FlipVertical;
SelectPic(ringfig);
Dispose;
SelectPic(fig1);
Dispose;
SelectPic(fig2);
Dispose;
SelectPic(polefig);
KillRoi;
mm:=trunc(mmax);
ax:=10*(mmax-mm);
SaveAs(wtitle,'_',mm:2,'.',ax:1,'_of_',polemax:2)
END;



MACRO 'make CIP pole figure - steps              [S]';
VAR
    mmax,polemax,factor,incr,magfac : REAL;
   level,i,newpolesize,newoval,temp,step:integer;
   ringfig,polefig,mm,ax:integer;
  delta,steps,StepSize,NextStep:real;
  wtitle:string;
   BEGIN
  wtitle:=WindowTitle;
   magfac := GetNumber('Magnification', 5.0);
   mmax := GetNumber('Measured maximum', 2.5);
   polemax := GetNumber('Maximum of polefigure', 4.0);
   step := GetNumber('No.of contours in polefigure', 8);
   incr:= polemax/step;
   factor:= mmax/polemax;
   newpolesize:=36.*magfac + 4.00;
   newoval:=newpolesize-2;

MakeOvalRoi(0,0,36,36);
Copy;
SetNewSize(38,38);
MakeNewWindow('Pole ring');
ringfig:=PidNumber;
  Paste;
  DoCopy;
            PutPixel(22,37,GetPixel(15,1));
            PutPixel(21,37,GetPixel(16,1));
            PutPixel(20,37,GetPixel(17,1));
            PutPixel(19,37,GetPixel(18,1));
            PutPixel(18,37,GetPixel(19,1));
            PutPixel(17,37,GetPixel(20,1));
            PutPixel(16,37,GetPixel(21,1));
            PutPixel(15,37,GetPixel(22,1));
PutPixel(15,0,GetPixel(22,36));
PutPixel(16,0,GetPixel(21,36));
PutPixel(17,0,GetPixel(20,36));
PutPixel(18,0,GetPixel(19,36));
PutPixel(19,0,GetPixel(18,36));
PutPixel(20,0,GetPixel(17,36));
PutPixel(21,0,GetPixel(16,36));
PutPixel(22,0,GetPixel(15,36));
            PutPixel(25,36,GetPixel(12,2));
            PutPixel(24,36,GetPixel(13,2));
            PutPixel(23,36,GetPixel(14,2));
            PutPixel(14,36,GetPixel(23,2));
            PutPixel(13,36,GetPixel(24,2));
            PutPixel(12,36,GetPixel(25,2));
            PutPixel(25,1,GetPixel(12,35));
            PutPixel(24,1,GetPixel(13,35));
            PutPixel(23,1,GetPixel(14,35));
            PutPixel(14,1,GetPixel(23,35));
            PutPixel(13,1,GetPixel(24,35));
            PutPixel(12,1,GetPixel(25,35));
PutPixel(37,22,GetPixel(1,15));
PutPixel(37,21,GetPixel(1,16));
PutPixel(37,20,GetPixel(1,17));
PutPixel(37,19,GetPixel(1,18));
PutPixel(37,18,GetPixel(1,19));
PutPixel(37,17,GetPixel(1,20));
PutPixel(37,16,GetPixel(1,21));
PutPixel(37,15,GetPixel(1,22));
            PutPixel(0,22,GetPixel(36,15));
            PutPixel(0,21,GetPixel(36,16));
            PutPixel(0,20,GetPixel(36,17));
            PutPixel(0,19,GetPixel(36,18));
            PutPixel(0,18,GetPixel(36,19));
            PutPixel(0,17,GetPixel(36,20));
            PutPixel(0,16,GetPixel(36,21));
            PutPixel(0,15,GetPixel(36,22));
PutPixel(36,25,GetPixel(2,12));
PutPixel(36,24,GetPixel(2,13));
PutPixel(36,23,GetPixel(2,14));
PutPixel(36,14,GetPixel(2,23));
PutPixel(36,13,GetPixel(2,24));
PutPixel(36,12,GetPixel(2,25));
PutPixel(1,25,GetPixel(35,12));
PutPixel(1,24,GetPixel(35,13));
PutPixel(1,23,GetPixel(35,14));
PutPixel(1,14,GetPixel(35,23));
PutPixel(1,13,GetPixel(35,24));
PutPixel(1,12,GetPixel(35,25));
            PutPixel(28,35,GetPixel(10,3));
            PutPixel(27,35,GetPixel(11,3));
            PutPixel(26,35,GetPixel(12,3));
            PutPixel(11,35,GetPixel(25,3));
            PutPixel(10,35,GetPixel(26,3));
            PutPixel(9,35,GetPixel(27,3));

            PutPixel(28,2,GetPixel(10,34));
            PutPixel(27,2,GetPixel(11,34));
            PutPixel(26,2,GetPixel(12,34));
            PutPixel(11,2,GetPixel(25,34));
            PutPixel(10,2,GetPixel(26,34));
            PutPixel(9,2,GetPixel(27,34));
PutPixel(35,28,GetPixel(3,10));
PutPixel(35,27,GetPixel(3,11));
PutPixel(35,26,GetPixel(3,12));
PutPixel(35,11,GetPixel(3,25));
PutPixel(35,10,GetPixel(3,26));
PutPixel(35,9,GetPixel(3,27));

PutPixel(2,28,GetPixel(34,10));
PutPixel(2,27,GetPixel(34,11));
PutPixel(2,26,GetPixel(34,12));
PutPixel(2,11,GetPixel(34,25));
PutPixel(2,10,GetPixel(34,26));
PutPixel(2,9,GetPixel(34,27));

            PutPixel(34,30,GetPixel(4,8));
            PutPixel(34,29,GetPixel(4,9));
            PutPixel(34,28,GetPixel(4,10));
            PutPixel(34,9,GetPixel(4,27));
            PutPixel(34,8,GetPixel(4,28));
            PutPixel(34,7,GetPixel(4,29));

            PutPixel(3,30,GetPixel(33,8));
            PutPixel(3,29,GetPixel(33,9));
            PutPixel(3,28,GetPixel(33,10));
            PutPixel(3,9,GetPixel(33,27));
            PutPixel(3,8,GetPixel(33,28));
            PutPixel(3,7,GetPixel(33,29));

PutPixel(30,34,GetPixel(8,4));
PutPixel(29,34,GetPixel(9,4));
PutPixel(28,34,GetPixel(10,4));
PutPixel(9,34,GetPixel(27,4));
PutPixel(8,34,GetPixel(28,4));
PutPixel(7,34,GetPixel(29,4));

PutPixel(30,3,GetPixel(8,33));
PutPixel(29,3,GetPixel(9,33));
PutPixel(28,3,GetPixel(10,33));
PutPixel(9,3,GetPixel(27,33));
PutPixel(8,3,GetPixel(28,33));
PutPixel(7,3,GetPixel(29,33));

            PutPixel(31,33,GetPixel(7,5));
            PutPixel(30,33,GetPixel(8,5));
            PutPixel(7,33,GetPixel(29,5));
            PutPixel(6,33,GetPixel(30,5));
            PutPixel(31,4,GetPixel(7,32));
            PutPixel(30,4,GetPixel(8,32));
            PutPixel(7,4,GetPixel(29,32));
            PutPixel(6,4,GetPixel(30,32));

            PutPixel(32,32,GetPixel(6,6));
            PutPixel(31,32,GetPixel(7,6));
            PutPixel(5,32,GetPixel(30,6));
            PutPixel(6,32,GetPixel(31,6));
            PutPixel(32,5,GetPixel(6,31));
            PutPixel(31,5,GetPixel(7,31));
            PutPixel(5,5,GetPixel(30,31));
            PutPixel(6,5,GetPixel(31,31));

            PutPixel(33,31,GetPixel(5,7));
            PutPixel(32,31,GetPixel(6,7));
            PutPixel(5,31,GetPixel(31,7));
            PutPixel(4,31,GetPixel(32,7));
            PutPixel(33,6,GetPixel(5,30));
            PutPixel(32,6,GetPixel(6,30));
            PutPixel(5,6,GetPixel(31,30));
            PutPixel(4,6,GetPixel(32,30));

            PutPixel(33,30,GetPixel(5,8));
            PutPixel(4,30,GetPixel(32,8));
            PutPixel(33,7,GetPixel(5,29));
            PutPixel(4,7,GetPixel(32,29));

SetNewSize(newpolesize,newpolesize);
SetScaling('New window');
SetScaling('bilinear');
ScaleAndRotate(magfac,magfac,0.);
SelectAll;
MultiplyByConstant(factor);
 MakeOvalRoi(1,1,newoval,newoval);
  Copy;
  SelectAll;
  Clear;
  SetForegroundColor(255);
  Fill;
  Paste;
  DoCopy;
  steps:=polemax/incr;
  StepSize:=256/steps;
  delta:=256/(steps-1);
  NextStep:=trunc(StepSize);
  level:=255;
  for i:=0 to 255 do begin
    if i>=NextStep then begin
      NextStep:=trunc(NextStep+StepSize);
      level:=level-delta;
      UpdateLUT;
    end;
    if level<0 then level:=0;
    RedLUT[i]:=level;
    GreenLUT[i]:=level;
    BlueLUT[i]:=level;
  end;
SetPicName('Pole figure');
polefig:=PidNumber;
SelectAll;
FlipVertical;
SelectPic(ringfig);
Dispose;
SelectPic(polefig);
KillRoi;
mm:=trunc(mmax);
ax:=10*(mmax-mm);
SaveAs(wtitle,'_',mm:2,'.',ax:1,'_of_',polemax:2)
END;



macro '(-' begin end;


MACRO 'apply LUT        [L]';
begin
ApplyLUT;
end;

MACRO 'make outlines  [O]';
   BEGIN
ApplyLUT;
MakeOvalROI(4,4,182,182);
Copy;
SelectAll;
SetForegroundColour(120);
Fill;
  Paste;
  DoCopy;
SelectAll;
Filter('find edges');
SetForegroundColour(250);
MakeOvalROI(4,4,182,182);
DrawBoundary;
MakeOvalROI(3,3,184,184);
DrawBoundary;
   END;


MACRO 'Spectrum LUT  [F]';
BEGIN
SetPalette('256 Color Spectrum');
END;


MACRO 'Grayscale         [G]';
BEGIN
SetPalette('Grayscale');
END;


macro '(-' begin end;

MACRO 'where am i on 180*180 pole figure [W]';

VAR
ix,iy:integer;
x,y,xc,yc,dx,dy,r,ang,inc,rad: real;

BEGIN

   rad:= 57.29577951308;

PutMessage('to find orientation place cursor on pole figure');
GetPicSize(x,y);
xc:=0.5*x;
yc:=0.5*y;

GetMouse(ix,iy);
dx:=ix-xc;
dy:=iy-yc;
if dx<0 then dx:=dx+1;
if dy<0 then dy:=dy+1;


r:=sqrt(dx*dx+dy*dy);


ang:=90.;
if (dy<0) and (dx>=0) then ang:=rad*arctan(dx/-dy);
if (dy<0) and (dx<0) then ang:=180.-rad*arctan(-dx/-dy);
if (dy>0) and (dx>=0) then ang:=180.-rad*arctan(dx/dy);
if (dy>0) and (dx<0) then ang:=rad*arctan(-dx/dy);


PutMessage('Azimuth = ',ang);

if dx>=0 then inc:=r;
if dx<0 then inc:=180.-r;

PutMessage('Inclination = ',inc);

END;



